package org.jeecg.common.util.jsonschema.validate;

import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Map;
import org.jeecg.common.util.jsonschema.CommonProperty;

/**
 * 字典属性
 *
 * @author 86729
 */
public class DictProperty extends CommonProperty {

  private static final long serialVersionUID = 3786503639885610767L;

  // 字典三属性
  private String dictCode;
  private String dictTable;
  private String dictText;

  public String getDictCode() {
    return dictCode;
  }

  public void setDictCode(String dictCode) {
    this.dictCode = dictCode;
  }

  public String getDictTable() {
    return dictTable;
  }

  public void setDictTable(String dictTable) {
    this.dictTable = dictTable;
  }

  public String getDictText() {
    return dictText;
  }

  public void setDictText(String dictText) {
    this.dictText = dictText;
  }

  public DictProperty() {}

  /** 构造器 */
  public DictProperty(
      String key, String title, String dictTable, String dictCode, String dictText) {
    this.type = "string";
    this.view = "sel_search";
    this.key = key;
    this.title = title;
    this.dictCode = dictCode;
    this.dictTable = dictTable;
    this.dictText = dictText;
  }

  @Override
  public Map<String, Object> getPropertyJson() {
    Map<String, Object> map = new HashMap<>();
    map.put("key", getKey());
    JSONObject prop = getCommonJson();
    if (dictCode != null) {
      prop.put("dictCode", dictCode);
    }
    if (dictTable != null) {
      prop.put("dictTable", dictTable);
    }
    if (dictText != null) {
      prop.put("dictText", dictText);
    }
    map.put("prop", prop);
    return map;
  }

  // TODO 重构问题：数据字典 只是字符串类的还是有存储的数值类型？只有字符串请跳过这个 只改前端
}
